<!--
 * @Author: your name
 * @Date: 2021-08-13 16:30:39
 * @LastEditTime: 2021-08-21 10:59:35
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \系统学习\VueProject\vue02\supermall\src\components\content\goods\GoodsListItem.vue
-->
<template>
    <div class="goods-item" @click="itemClick">
        <img v-lazy="showImage" alt="" @load="imgLoad">
        <div class="goods-info">
            <p>{{goodsItem.title}}</p>
            <span class="price">{{goodsItem.price}}</span>
            <span class="collect">{{goodsItem.cfav}}</span>
        </div>
    </div>
</template>

<script>
export default {
    name:'GoodsListItem',
    props:{
        goodsItem:{
            type:Object,
            default(){
                return {}
            }
        }
    },
    computed:{
      showImage(){
        return this.goodsItem.image || this.goodsItem.show.img
      }
    },
    methods:{
      // 图片加载完成之后
      imgLoad(){
        // console.log('imgLoad');
        this.$bus.$emit('itemImageLoad')
      },
      itemClick(){
        // console.log('跳转到详情页');
        // 通过动态路由的方式传递参数
        this.$router.push('/detail/'+ this.goodsItem.iid)
        // 通过query的方式进行传递
        // this.$router.push({
        //   path:'/detail',
        //   query:{
        //     iid:this.goodsItem.iid
        //   }
        // })
      }
    }
}
</script>

<style scoped>
.goods-item {
    padding-bottom: 40px;
    position: relative;

    width: 48%;
  }

  .goods-item img {
    width: 100%;
    border-radius: 5px;
  }

  .goods-info {
    font-size: 12px;
    position: absolute;
    bottom: 5px;
    left: 0;
    right: 0;
    overflow: hidden;
    text-align: center;
  }

  .goods-info p {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-bottom: 3px;
  }

  .goods-info .price {
    color: var(--color-high-text);
    margin-right: 20px;
  }
  .goods-info .collect {
    position: relative;
  }

  .goods-info .collect::before {
    content: '';
    position: absolute;
    left: -15px;
    top: -1px;
    width: 14px;
    height: 14px;
    background: url("~assets/img/common/collect.svg") 0 0/14px 14px;
  }
</style>
